Businesses accumulate tremendous amounts (e.g., petabytes) of data in databases that are stored on all kinds of media including, for example, tapes, hard disk drives, volatile memory devices such as random access memory (RAM), and non-volatile memory devices (NVMDs) such as solid state drives (SSDs). The use of NVMDs instead of other storage media such as RAM to store large amounts of data presents some challenges. NVMDs have longer read and write latencies relative to, for example, double data rate type three synchronous dynamic RAM (DDR3 DRAM). Also, NVMDs are erased before being written to and can only be erased a limited number of times before wearing out.
On the other hand, the capacity of NVMDs makes them more practical than RAM for storing large amounts of data. Also, when power to RAM is lost or interrupted, the data held by the RAM is lost. NVMDs use NAND-based flash memory, for example, which retains data even when power is lost. Thus, the advantages of NVMDs include their capacity and non-volatility.
The basic unit of each NVMD read/write operation is referred to as a page. There are multiple writeable pages grouped per word line. A typical contemporary word line includes four pages. NVMDs are also organized into erase blocks. An erase block is the smallest unit at which data can be erased from an NVMD. Each erase block includes multiple pages. A typical contemporary erase block may include, for example, 512 pages.
To mitigate their longer access time (read and write latencies), data is written to NVMDs in parallel. In general, writes are made in a controlled or systematic manner. For example, in an erase block containing 512 pages, writes are performed starting at the first page (page 0), proceeding in sequence through the last page (page 511) and then onto the next erase block. However, in high-performance NVMDs, writes may not be performed all the way to the end of an erase block before a switch is made to another erase block. Thus, an erase block may be only partially filled with data, in which case the erase block may contain at least one word line that is only partially written. A word line is said to be partially written if only a subset of the pages in the word line (e.g., less than four pages) have been written (programmed) with data.
An erase block in an NVMD may be unreliable when a word line is only partially written. That is, data written to a page in a partially written word line is vulnerable to a higher than acceptable error rate. A page in which data may be compromised over an acceptable level may be referred to as a weak page or instability.
Recent 2Y 20 nanometer (nm) flash memory devices are particularly susceptible to errors if a partially filled erase block (containing a partially filled word line) is erased. There are not mechanisms that can be used to detect and correct errors due to instability. The instability is such that when the erase block is subsequently written to and then read from, some of the data that is read may be incorrect but cannot be corrected by error-correcting code (ECC) because, for example, the number of erroneous bits exceeds the error-correcting capability of the ECC. This can result in a loss of data. Such errors can be widespread throughout the NVMD to the extent that, under some circumstances, the best or only way to proceed is to avoid using problematic erase blocks. However, this results in a loss of memory capacity.